/*
 * ACABADA, NO PROBADA
 */

package poker.condiciones;

import java.util.Vector;
import prop.Condicion;
import poker.MesaPoker;
import poker.JugadorPoker;
import poker.JugadorPoker.Movimiento;

/**
 * @author Reyes
 */

/*descripción:
 * Retorna cierto si soy el ultimo que tiene que actuar en esta ronda
 * (si los que van detrás mio han pasado o no tienen dinero para
 * cubrir la apuesta).
 * No tiene parámetros.
 */
public class CondicionSoyElUltimo extends Condicion{

    @Override
    public boolean evalua(){
        //calculo el indice jugador en el vector de jugadores que tiene la mesa.
        Vector v = estrategia.getMesa().getJugadores();
        int miPosicion = v.indexOf(estrategia.getJugador());
        // calculo el numero de jugadores que hay en la mesa
        int numJug = estrategia.getMesa().getNumJugadores();
        // calculo la apuesta qua hay en la mesa
        int apuesta = ((MesaPoker) estrategia.getMesa()).getApuesta();
 
        if (numJug == miPosicion+1) {
            return true;
        } else {
             boolean puedenSubir = false;
             for(int i=miPosicion+1; i<numJug; i++){
                 int suDinero = (estrategia.getMesa().getJugador(i).getDinero());
                 Movimiento m = ((JugadorPoker) v.get(i)).getUltimaAccion();
                 if ((suDinero < apuesta)||(m != Movimiento.PASA)){
                     puedenSubir = true;
                 } 
             }// fin for
             return puedenSubir;
         } //fin else
    } // fin evalua
} //fin de la clase
